﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MAntLibrary
{
    public class Picture
    {
        public Picture() { }
        public Picture(string p, string p_2, string p_3)
        {
            // TODO: Complete member initialization
            this.preview = p;
            this.fullImage = p_2;
            this.filename = p_3;
        }
        public string preview { set; get; }
        public string fullImage { set; get; }
        public string filename { set; get; }
    }

    public class Attributes
    {
        public Attributes(string _jmeno, string _hodnota)
        {
            // TODO: Complete member initialization
            this.Jmeno = _jmeno;
            this.Hodnota = _hodnota;
        }
        public string Jmeno { set; get; }
        public string Hodnota { set; get; }
    }
    /// <summary>
    /// Trida reprezentuje vsechny prvky NET DIRECTackeho produktu
    /// </summary>
    public class ZboziNetDirect
    {
        #region CONSTRUCTORS
        public ZboziNetDirect()
        {
            varianty = new List<string>();
            barva = new List<string>();
            velikost = new List<string>();
        }
        #endregion



        #region TRIDNI 
        public string CenaBezDPH { set; get; }
        public string CenaSDPH { set; get; }
        public string Kategorie { set; get; }

        public List<Attributes> atributy { set; get; }

        private string sIdZbozi;
        public string IdZbozi
        {
            set{sIdZbozi = value.Trim();}
            get{return sIdZbozi;}
        }

        private string sKodZbozi;
        public string KodZbozi{
            set { sKodZbozi = value.Trim(); }
            get { return sKodZbozi; }
        }

        private string sJmenoVyrobku;
        public string JmenoVyrobku
        {
            set { sJmenoVyrobku = value.Trim(); }
            get { return sJmenoVyrobku; }
        }

        private string sKratkyPopis;
        public string KratkyPopis
        {
            set { sKratkyPopis = value.Trim(); }
            get { return sKratkyPopis; }
        }

        private string sPopis;
        public string Popis
        {
            set { sPopis = value; }
            get { return sPopis; }
        }

        private string sJmenoVyrobce;
        public string JmenoVyrobce
        {
            set { sJmenoVyrobce = value.Trim(); }
            get { return sJmenoVyrobce; }
        }

        private string nZarukaMesicu;
        public string ZarukaMesicu
        {
            set { nZarukaMesicu = value.Trim(); }
            get { return nZarukaMesicu; }
        }

        private string nDph;
        public string Dph
        {
            set { nDph = value; }
            get { return nDph; }
        }

        private string sDostupnost;
        public string Dostupnost
        {
            set { sDostupnost = value.Trim(); }
            get { return sDostupnost; }
        }

        private string sDostupnostNazev;
        public string DostupnostNazev
        {
            set { sDostupnostNazev = value.Trim(); }
            get { return sDostupnostNazev; }
        }

        private string sDostupnostPopis;
        public string DostupnostPopis
        {
            set { sDostupnostPopis = value.Trim(); }
            get { return sDostupnostPopis; }
        }

        
        public List<Picture> Obrazky { set; get; }

        private string bAkcni;
        public string Akcni
        {
            set { bAkcni = value.Trim(); }
            get { return bAkcni; }
        }

        private string bNejprodavanejsiKategorie;
        public string NejprodavanejsiKategorie
        {
            set { bNejprodavanejsiKategorie = value.Trim(); }
            get { return bNejprodavanejsiKategorie; }
        }

        private string bNejprodavanejsiEshop;
        public string NejprodavanejsiEshop
        {
            set { bNejprodavanejsiEshop = value.Trim(); }
            get { return bNejprodavanejsiEshop; }
        }

        private string bNovinka;
        public string Novinka
        {
            set
            {
                if (value.Equals("ano")) { bNovinka = "1"; }
                else { bNovinka = "0"; }
            }
            get { return bNovinka; }
        }

        private string bTip;
        public string Tip
        {
            set { bTip = value.Trim(); }
            get { return bTip; }
        }

        private string nZboziPoradi;
        public string ZboziPoradi
        {
            set { nZboziPoradi = value.Trim(); }
            get { return nZboziPoradi; }
        }

        private string nAkcniPoradi;
        public string AkcniPoradi
        {
            set { nAkcniPoradi = value.Trim(); }
            get { return nAkcniPoradi; }
        }

        private string nNejprodKategPoradi;
        public string NejprodKategPoradi
        {
            set { nNejprodKategPoradi = value.Trim(); }
            get { return nNejprodKategPoradi; }
        }

        private string nNejprodEshopPoradi;
        public string NejprodEshopPoradi
        {
            set { nNejprodEshopPoradi = value.Trim(); }
            get { return nNejprodEshopPoradi; }
        }

        private string nNovinkaPoradi;
        public string NovinkaPoradi
        {
            set { nNovinkaPoradi = value.Trim(); }
            get { return nNovinkaPoradi; }
        }

        private string nTipPoradi;
        public string TipPoradi
        {
            set { nTipPoradi = value.Trim(); }
            get { return nTipPoradi; }
        }

        private string bVypnout;
        public string Vypnout
        {
            set { bVypnout = value.Trim(); }
            get { return bVypnout; }
        }

        private string nDefaultMnozstviDoKosiku;
        public string DefaultMnozstviDoKosiku
        {
            set { nDefaultMnozstviDoKosiku = value.Trim(); }
            get { return nDefaultMnozstviDoKosiku; }
        }

        private string jednotkaParametru;
        public string JednotkaParametru
        {
            set { jednotkaParametru = value; }
            get { return jednotkaParametru; }
        }
        #endregion

        #region POMOCNE PROMENNE
        // promenna ulozi varianty zbozi
        private List<string> varianty;
        public void setVarianty(string s) { varianty.Add(s); }
        public void setVarianty(List<string> list) 
        {
            foreach (string item in list)
            {
                varianty.Add(item);
            }
        }

        public void setVarianty(string[] arr)
        {
            foreach (string item in arr)
            {
                varianty.Add(item);
            }
        }

        public void setVarianty(List<string> list, List<string> list2)
        {
            foreach (string s1 in list)
            {
                foreach (string s2 in list2)
                {
                    if (string.IsNullOrEmpty(s1)) { varianty.Add(s2); continue; }
                    else if (string.IsNullOrEmpty(s2)) { varianty.Add(s1); continue; }
                    else { varianty.Add(s1 + " - " + s2); }
                }
            }
        }
        public List<string> getVarianty() { return varianty; }

        // cena produktu - PUVODNI
        private string puvodniCena;
        public string PuvodniCena
        {
            set { puvodniCena = value; }
            get { return puvodniCena; }
        }

        // cena produktu - SLEVA
        private string novaCena;
        public string NovaCena
        {
            get { return novaCena; }
        }
        public void setNovaCena(int s)
        {
            char[] separators = new char[]{'.',','};
            string[] tmp = puvodniCena.Split(separators);
            int puvodni = Convert.ToInt32(tmp[0]);

            int n = Convert.ToInt32(puvodni * ((100 - s) / 100.0));
            novaCena = n.ToString();
        }
        public void setNovaCena(string value) { novaCena = value; }

        #endregion

        #region LITEX
        private List<string> barva;
        public void setBarva(string s) { barva.Add(s); }
        public void setBarva(string[] s)
        {
            foreach (string a in s)
            {
                barva.Add(a);
            }
        }
        public List<string> getBarva() { return barva; }

        private List<string> velikost;
        public void setVelikost(string s) 
        {
            if (!string.IsNullOrEmpty(s))
            {
                velikost.Add(s);
            }
        }

        public void setVelikost(string[] s)
        {
            foreach (string a in s)
            {
                velikost.Add(a);
            }
        }
        public List<string> getVelikost() { return velikost; }

        public string getVelikost(bool b)
        {
            string result = string.Empty;
            if(velikost.Count==0){return string.Empty;}
            foreach (string item in velikost)
            {
                result += item+",";
            }
            return result;
        }

        public void setVelikost(List<string> list)
        {
            foreach (string item in list)
            {
                velikost.Add(item);
            }
        }
        #endregion

        #region Zakaznik001-Rosso
        private string width;
        public string Width
        {
            set
            {
                width = value;
            }
            get
            {
                return width;
            }
        }

        private string height;
        public string Height
        {
            set
            {
                height = value;
            }
            get
            {
                return height;
            }
        }

        private string length;
        public string Length
        {
            set
            {
                length = value;
            }
            get
            {
                return length;
            }
        }

        private string color;
        public string Color
        {
            set
            {
                color = value;
            }
            get
            {
                return color;
            }
        }

        private string color_detail;
        public string Color_detail
        {
            set
            {
                color_detail = value;
            }
            get
            {
                return color_detail;
            }
        }

        private string material;
        public string Material
        {
            set
            {
                material = value;
            }
            get
            {
                return material;
            }
        }

        private string room;
        public string Room
        {
            set
            {
                room = value;
            }
            get
            {
                return room;
            }
        }

        private string delivery_date;
        public string Delivery_date
        {
            set
            {
                delivery_date = value;
            }
            get
            {
                return delivery_date;
            }
        }
        #endregion

        #region Heureka
        public string TollFree { get; set; }
        #endregion

        
    }
}
